package com.itheima.health.quartz;

import com.itheima.health.resource.aliyunoss.AliyunUtils;
import com.itheima.health.resource.pub.RedisConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.HashSet;
import java.util.Set;


@Component
public class MyJob {

    @Autowired
    private RedisTemplate<Object,Object>  redisTemplate;

    //  表达式 定义 任务执行周期
    @Scheduled(cron = "*/10 * * * * ?")
    public  void  run1 (){
        //  多出来  冗余图片   differcence 方法 传递 两个set的key   自动比较 第一个 set  和 第二 set 集合  多出来的数据
        Set<Object> difference = redisTemplate.opsForSet().difference(RedisConstant.SETMEAL_PIC_RESOURCES, RedisConstant.SETMEAL_PIC_DB_RESOURCES);
        System.out.println(difference+"=============");
        if(difference!=null&&difference.size()>0){
            for (Object filename : difference) {
                AliyunUtils.deleteFile((String)filename);// oss 删除多余的图片
            }
            //  redis  存储 set 清理
              redisTemplate.delete(RedisConstant.SETMEAL_PIC_RESOURCES);
              redisTemplate.delete(RedisConstant.SETMEAL_PIC_DB_RESOURCES);
            System.out.println("阿里云 oss  冗余图片清理完毕！");
        }else{
            System.out.println("任务调度执行了一次--没有冗余图片信息");
        }
    }

    //  表达式 定义 任务执行周期
//    @Scheduled(cron = "*/5 * * * * ?")
//    public  void  run2 (){
//        System.out.println("每隔一段时间执行2次 。。");
//    }

    //  表达式 定义 任务执行周期
//    @Scheduled(cron = "*/25 * * * * ?")
//    public  void  run3 (){
//        System.out.println("每隔一段时间执行3次 。。");
//    }

}
